library(ncdf)

##Funktion mit den Laengen-und Breitengraden als Eingabeparameter
##x ist die Eingabematrix
cut_matrix <- function(x,
                       Res,   
                      LongMin, 
                      LongMax, 
                      LatMin, 
                      LatMax) {
  
  ##Berechnung der Laengengeraden  
  LatitudeMin <- ifelse(LatMin < 0, (LatMin+180)/Res+1, LatMin/Res+720)
  LatitudeMax <- ifelse(LatMax < 0, (LatMax+180)/Res+1, LatMax/Res+720)
  
  ##Berechnung der Breitengraden
  LongitudeMin <- ifelse(LongMin < 0, (LongMin+50)/Res+1, LongMin/0.25+200)
  LongitudeMax <- ifelse(LongMax < 0, (LongMax+50)/Res+1, LongMax/0.25+200)
  
  ##wenn man den combine Befehl ausfuehrt, gibt er die gesuchten Spalten- und 
  ##Zeilengrenzen aus
  ##prec_cut <- c(LatitudeMin, LatitudeMax, LongitudeMin, LongitudeMax)
  
  ##aber das direkt zurechtschneiden funktioniert noch nicht =(
  x_matrix <- x[(LatitudeMin:LatitudeMax), (LongitudeMin:LongitudeMax)]
  
  x_matrix
  
    }

##Daten einladen und Niederschlagsvariable (= Eingabematrix) extrahieren
data <- open.ncdf("C:/Users/Steffi/Documents/=Uni/Projektarbeit/BspProjektarbeit.nc", write = FALSE, readumlim = TRUE)
prec <- get.var.ncdf(data, varid = "precipitation")

##Funktion ausprobieren
##Bei der Eingabe der Parameter muss beachtet werden, dass LongMin < LongMax und 
##LatMin < LatMax ist, ausser wenn der Ausschnitt nach Osten ueber den -180sten 
##Laengengrad hinausgeht
Ausgabe <- cut_matrix( x = prec,
          Res = 0.25,
          LongMin = 37,
          LongMax = 37.25,
          LatMin = -3.5,
          LatMax = -3.25)
